{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Catalog**\n",
    "- Gradient Descent\n",
    "- Linear Regression\n",
    "- Logistic Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://github.com/AryeYellow/PyProjects/blob/master/DataScience/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from warnings import filterwarnings\n",
    "filterwarnings('ignore')  # 不打印警告\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as mp, numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 梯度下降"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**梯度**\n",
    "- 是一个向量，表示某一函数在该点处的方向导数沿着该方向取得最大值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**梯度下降**\n",
    "- 沿梯度下降的方向求解极小值，是机器学习中常用的迭代算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**梯度下降算法**：以 $f(x)=x^2−2x+1$ 为例，求函数的极值点\n",
    "- 求导数：$f'(x)=2x−2$\n",
    "- 计算机使用迭代的方法，一步一步逼近极值点（向梯度相反的方向移动）\n",
    "- 迭代公式：$x_{i+1}=x_i-\\alpha\\frac{\\partial f(x_i)}{x_i}=x_i-\\alpha(2x_i-2)$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\"\"\"原函数\"\"\"\n",
    "fn = lambda x: x ** 2 - 2 * x + 1\n",
    "x = np.linspace(0, 2, 9999)\n",
    "mp.plot(x, fn(x), c='black')  # 绘制函数曲线\n",
    "\n",
    "\"\"\"导数\"\"\"\n",
    "derivative = lambda x: 2 * x - 2\n",
    "\n",
    "\"\"\"梯度下降求极值点\"\"\"\n",
    "extreme_point = 0  # 初始化极值点\n",
    "alpha = 0.1  # 学习速率\n",
    "presision = 0.001  # 允许误差范围\n",
    "error = np.inf  # 初始化误差\n",
    "while abs(error) >= presision:  # 误差足够小时退出迭代\n",
    "    mp.scatter(extreme_point, fn(extreme_point), c='b', alpha=.5)  # 绘制散点\n",
    "    error = alpha * derivative(extreme_point)  # 步伐\n",
    "    extreme_point -= error  # 梯度下降\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性回归\n",
    "https://blog.csdn.net/Yellow_python/article/details/81224614"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "创建数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "bias = 10.0  # 偏差\n",
    "X, Y, coef = make_regression(n_features=1, noise=9, bias=bias, coef=True)\n",
    "X = X.reshape(-1)\n",
    "mp.scatter(X, Y, c='g', alpha=.7)\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$f(x) = w x + b$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$loss = \\frac{1}{m} \\sum _{i=0}^m (y_i - (w x_i + b))^2$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss = lambda w, b: np.mean([(y - (w * x + b)) ** 2 for x, y in zip(X, Y)])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\frac{\\partial loss}{\\partial w} = \\frac{1}{m} \\sum_{i=0}^m 2x_i(w x_i + b - y_i)$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\frac{\\partial loss}{\\partial b} = \\frac{1}{m} \\sum_{i=0}^m 2(w x_i + b - y_i)$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ w := w - \\alpha \\frac{\\partial loss}{\\partial w} $"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ b := b - \\alpha \\frac{\\partial loss}{\\partial b} $"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_descent(w, b, lr):\n",
    "    for x, y in zip(X, Y):\n",
    "        w -= lr * (((w * x) + b) - y) * x\n",
    "        b -= lr * (((w * x) + b) - y)\n",
    "    return w, b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "迭代更新"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step0 loss: 330.3465\n",
      "step1 loss: 148.5865\n",
      "step2 loss: 99.0237\n",
      "step3 loss: 85.3904\n",
      "step4 loss: 81.6123\n",
      "step5 loss: 80.5582\n",
      "step6 loss: 80.2621\n",
      "step7 loss: 80.1782\n",
      "step8 loss: 80.1543\n",
      "step9 loss: 80.1474\n",
      "11.676190358069949 10.0 | 12.820284733715095 10.27228390149755 | 80.14540767642679\n"
     ]
    }
   ],
   "source": [
    "w, b = .0, .0  # 系数初始化\n",
    "lr = .007  # 学习率\n",
    "for i in range(10):\n",
    "    print('step%d loss: %.4f' % (i, loss(w, b)))  # 打印损失值\n",
    "    w, b = gradient_descent(w, b, lr)  # 参数更新\n",
    "print(coef, bias, '|', w, b, '|', loss(w, b))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mp.scatter(X, Y, c='g', alpha=.3)\n",
    "mp.plot(X, w * X + b)\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑回归\n",
    "https://blog.csdn.net/Yellow_python/article/details/81240395"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$L(\\theta)= \\sum_{i=1}^n (y_i \\log h_{\\theta}(x_i) + (1-y_i) \\log (1-h_{\\theta}(x_i)))$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\\frac{\\partial L(\\theta)}{\\partial \\theta} = \\sum_{i=1}^n (y_i - h_{\\theta}(x_i))x_i$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\\theta^{t+1} = \\theta^t + \\alpha \\frac{1}{n} \\sum_{i=1}^n (y_i - h_{\\theta}(x_i))x_i$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**创建随机样本**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(100, 2) (100,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_blobs\n",
    "X, Y = make_blobs(centers=2, cluster_std=5)\n",
    "print(X.shape, Y.shape)\n",
    "mp.scatter(X[:, 0], X[:, 1], c=Y)\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Sigmoid**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sigmoid = lambda x: 1 / (1 + np.exp(-x))\n",
    "x = np.linspace(-8, 8, 65)\n",
    "mp.plot(x, sigmoid(x), label=r'$h_{\\theta}(X)=\\frac{1}{1+e^{-X \\theta}}$')\n",
    "mp.legend(prop={'size': 16})\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**数据处理**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((100, 3), (100, 1))"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = np.insert(X, 0, 1, axis=1)  # 插入一列常量，用于计算偏差\n",
    "Y = Y.reshape(-1, 1)\n",
    "X.shape, Y.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "X =\n",
    "\\begin{pmatrix}\n",
    "x_1 \\\\\n",
    "x_2 \\\\\n",
    "\\vdots \\\\\n",
    "x_n \\\\\n",
    "\\end{pmatrix}\n",
    "=\n",
    "\\begin{pmatrix}\n",
    "1 & x_{12} & x_{13} & \\cdots & x_{1m} \\\\\n",
    "1 & x_{22} & x_{33} & \\cdots & x_{2m} \\\\\n",
    "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
    "1 & x_{n2} & x_{n3} & \\cdots & x_{nm} \\\\\n",
    "\\end{pmatrix}\n",
    "_{n \\times m}\n",
    "y =\n",
    "\\begin{bmatrix}\n",
    "\ty_1 \\\\ y_2 \\\\ \\vdots \\\\ y_n \n",
    "\\end{bmatrix}\n",
    "_{n \\times 1}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**系数初始化**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "d = X.shape[1]  # 维数\n",
    "theta = np.mat([[1]] * d)  # 系数初始化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\theta =\n",
    "\\begin{bmatrix}\n",
    "\t\\theta_1 \\\\ \\theta_2 \\\\ \\vdots \\\\ \\theta_m \n",
    "\\end{bmatrix}\n",
    "_{m \\times 1}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**梯度上升**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ \\sum_{i=1}^n (h_{\\theta}(x_i) - y_i)x_i = X^T (y - h_{\\theta}(X)) $"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ \\theta := \\theta + \\alpha X^T (y - h) $"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "alpha = 1 / 6000\n",
    "for i in range(5999, 8999):\n",
    "    h = sigmoid(X * theta)\n",
    "    error = Y - h\n",
    "    theta = theta + alpha * X.T * error  # 最终梯度上升迭代公式"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "X \\theta =\n",
    "\\begin{pmatrix}\n",
    "\\theta_1 + x_{12} \\theta_2 + x_{13} \\theta_3 + \\cdots + x_{1m} \\theta_n \\\\\n",
    "\\theta_1 + x_{22} \\theta_2 + x_{33} \\theta_3 + \\cdots + x_{2m} \\theta_n \\\\\n",
    "\\vdots \\\\\n",
    "\\theta_1 + x_{n2} \\theta_2 + x_{n3} \\theta_3 + \\cdots + x_{nm} \\theta_n \\\\\n",
    "\\end{pmatrix}\n",
    "_{n \\times 1}\n",
    "X^T =\n",
    "\\begin{pmatrix}\n",
    "1 & 1 & \\cdots & 1 \\\\\n",
    "x_{21} & x_{22} & \\cdots & x_{2n} \\\\\n",
    "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
    "x_{m1} & x_{m2} & \\cdots & x_{mn} \\\\\n",
    "\\end{pmatrix}\n",
    "_{m \\times n}\n",
    "X^T(y-h)_{m \\times 1}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://img-blog.csdnimg.cn/2019010421374960.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_50,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1llbGxvd19weXRob24=,size_16,color_FFFFFF,t_70)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**可视化**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x1, x2 = X[:, 1], X[:, 2]\n",
    "mp.axis([x1.min() + 1, x1.max() + 1, x2.min() + 1, x2.max() + 1])\n",
    "mp.scatter(x1, x2, c=Y.reshape(-1))  # 原始样本点\n",
    "x = np.array([x1.min(), x1.max()])\n",
    "y = (-theta[0, 0] - theta[1, 0] * x) / theta[2, 0]  # 决策边界\n",
    "mp.plot(x, y)\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 动态展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from warnings import filterwarnings\n",
    "filterwarnings('ignore')  # 不打印警告\n",
    "%matplotlib qt5\n",
    "import matplotlib.pyplot as mp, numpy as np\n",
    "np.random.seed(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"原函数\"\"\"\n",
    "fn = lambda x: x ** 2 - 2 * x + 1\n",
    "x = np.linspace(0, 2, 9999)\n",
    "mp.plot(x, fn(x), c='black')  # 绘制函数曲线\n",
    "\n",
    "\"\"\"导数\"\"\"\n",
    "derivative = lambda x: 2 * x - 2\n",
    "\n",
    "\"\"\"梯度下降求极值点\"\"\"\n",
    "extreme_point = 0  # 初始化极值点\n",
    "alpha = 0.1  # 步长，即学习速率\n",
    "presision = .01  # 允许误差范围\n",
    "error = np.inf  # 初始化误差\n",
    "while abs(error) >= presision:  # 误差足够小时退出迭代\n",
    "    mp.scatter(extreme_point, fn(extreme_point), c='b', alpha=.5)  # 绘制散点\n",
    "    error = alpha * derivative(extreme_point)  # 步伐\n",
    "    extreme_point -= error  # 梯度下降\n",
    "    mp.pause(.2)  # 动图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"创建数据\"\"\"\n",
    "from sklearn.datasets import make_regression\n",
    "X, Y = make_regression(n_features=1, noise=9, )\n",
    "X = X.reshape(-1)\n",
    "\n",
    "\"\"\"参数更新\"\"\"\n",
    "def gradient_descent(w, b, lr):\n",
    "    for x, y in zip(X, Y):\n",
    "        w -= lr * (((w * x) + b) - y) * x\n",
    "        b -= lr * (((w * x) + b) - y)\n",
    "    return w, b\n",
    "\n",
    "\"\"\"运行过程可视化\"\"\"\n",
    "fig, ax = mp.subplots()\n",
    "w, b = .0, .0\n",
    "for i in range(160, 170):\n",
    "    w, b = gradient_descent(w, b, 1 / i)  # 先大后小的学习率\n",
    "    ax.cla()  # 清除\n",
    "    mp.scatter(X, Y, c='g', alpha=.3)  # 散点图\n",
    "    ax.plot(X, w * X + b)  # 折线图\n",
    "    mp.pause(.2)  # 限时展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"创建随机样本\"\"\"\n",
    "from sklearn.datasets import make_blobs\n",
    "X, Y = make_blobs(centers=2, cluster_std=5, random_state=1)\n",
    "\n",
    "\"\"\"数据处理\"\"\"\n",
    "X = np.insert(X, 0, 1, axis=1)  # 增加一列，用于矩阵相乘\n",
    "Y = Y.reshape(-1, 1)\n",
    "x1, x2 = X[:, 1], X[:, 2]\n",
    "fig, ax = mp.subplots()  # 创建绘图对象\n",
    "\n",
    "\"\"\"sigmoid函数\"\"\"\n",
    "sigmoid = lambda x: 1 / (1 + np.exp(-x))\n",
    "\n",
    "\"\"\"梯度上升\"\"\"\n",
    "d = X.shape[1]  # 维数\n",
    "theta = np.mat([[1]] * d)  # 初始化回归系数\n",
    "for i in range(800, 900):\n",
    "    alpha = 1 / i  # 步长（先大后小）\n",
    "    h = sigmoid(X * theta)\n",
    "    theta = theta + alpha * X.T * (Y - h)  # 最终梯度上升迭代公式\n",
    "    \"\"\"数据可视化\"\"\"\n",
    "    ax.cla()  # 清除\n",
    "    ax.axis([x1.min() + 1, x1.max() + 1, x2.min() + 1, x2.max() + 1])\n",
    "    ax.scatter(x1, x2, c=Y.reshape(-1))  # 原始样本点\n",
    "    x = np.array([x1.min(), x1.max()])\n",
    "    y = (-theta[0, 0] - theta[1, 0] * x) / theta[2, 0]  # 决策边界\n",
    "    ax.plot(x, y)\n",
    "    mp.pause(1e-9)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 调用sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "from sklearn.linear_model import LinearRegression\n",
    "import numpy as np, matplotlib.pyplot as mp\n",
    "from mpl_toolkits import mplot3d  # 绘制3d图\n",
    "%matplotlib inline\n",
    "\n",
    "\"\"\"数据加载\"\"\"\n",
    "X, Y = make_regression(n_features=2, noise=9, random_state=0)\n",
    "Y = Y.reshape(-1, 1)\n",
    "X1, X2 = X[:, 0], X[:, 1]\n",
    "\n",
    "\"\"\"建模、拟合\"\"\"\n",
    "model = LinearRegression().fit(X, Y)\n",
    "\n",
    "\"\"\"系数、截距\"\"\"\n",
    "w0, (w1, w2) = model.intercept_[0], model.coef_[0]\n",
    "\n",
    "\"\"\"可视化\"\"\"\n",
    "ax = mplot3d.Axes3D(mp.figure())  # 获取三维坐标轴\n",
    "ax.scatter(X1, X2, Y, s=150)  # 散点图\n",
    "x = np.array([[X1.min(), X2.min()], [X1.min(), X2.max()], [X1.max(), X2.min()]])\n",
    "x1, x2 = np.meshgrid(x[:, 0], x[:, 1])  # 3d格点矩阵\n",
    "y = w0 + w1 * x1 + w2 * x2  # 边界函数\n",
    "ax.plot_surface(x1, x2, y, alpha=0.1, color='green')  # 拟合平面\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from warnings import filterwarnings\n",
    "filterwarnings('ignore')  # 不打印警告\n",
    "from sklearn.datasets.samples_generator import make_blobs\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "import numpy as np, matplotlib.pyplot as mp\n",
    "from mpl_toolkits import mplot3d\n",
    "%matplotlib inline\n",
    "\n",
    "\"\"\"创建数据\"\"\"\n",
    "X, y = make_blobs(centers=[[2, 2, 2], [0, 0, 0]], random_state=3)\n",
    "\n",
    "\"\"\"建模\"\"\"\n",
    "model = LogisticRegression()\n",
    "model.fit(X, y)\n",
    "\n",
    "\"\"\"系数（coefficient）和截距\"\"\"\n",
    "w0, (w1, w2, w3) = model.intercept_[0], model.coef_[0]\n",
    "\n",
    "\"\"\"可视化\"\"\"\n",
    "ax = mplot3d.Axes3D(mp.figure())  # 获取三维坐标轴\n",
    "ax.scatter(X[:, 0], X[:, 1], X[:, 2], s=99, c=y)  # 散点图\n",
    "x1 = np.arange(X[:, 0].min() - 1, X[:, 0].max() + 1, 2)\n",
    "x2 = np.arange(X[:, 1].min() - 1, X[:, 1].max() + 1, 2)\n",
    "x1, x2 = np.meshgrid(x1, x2)  # 3d网格\n",
    "x3 = (w0 + w1 * x1 + w2 * x2) / -w3  # 边界函数\n",
    "ax.plot_surface(x1, x2, x3, alpha=0.2, color='g')  # 拟合平面\n",
    "mp.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
